

/**
 * 整个sheet表的每个单元格的样式
 * @param {*} ws sheet表
 */
export const deal_sheet_style = (ws, data) => {
    //设置start-end行单元格水平垂直居中/添加边框
    rowCenter(ws, 1, data.length + 1);

}

/**
 * 设置表头样式
 */
export const set_header_style = (ws) => {
    const row = ws.getRow(1);
    // 设置特定的行高
    row.height = 28;
    // 遍历一行中的所有单元格（包括空单元格）
    row.eachCell({ includeEmpty: true }, function (cell, colNumber) {
        // console.log('Cell ' + colNumber + ' = ' + cell);
        cell.font = {
            color: { argb: 'FFFFFF' },
            // name: 'Comic Sans MS',
            // family: 4,
            size: 14,
            // underline: true,
            bold: true
        };
        cell.fill = {
            type: 'pattern',
            pattern: 'solid',
            fgColor:{argb:"00409EFF"},
            //前面两位FF代表的是透明度FF        
            // bgColor: { argb: bgColor }
        };
    });
}

/**
   *  设置start-end行单元格水平垂直居中/添加边框
   * @param arg_ws workSheet 参数
   * @param arg_start 开始行
   * @param arg_end 结束结束行
   */
export const rowCenter = (arg_ws, arg_start, arg_end) => {
    let i = arg_start;
    for (; i <= arg_end; i++) {
        //获取某一行的数据
        let row = arg_ws.findRow(i)
        //设置对齐
        row.alignment = {
            vertical: "middle",
            horizontal: "center",
        };
        //设置数据行高
        row.height = 28;
        // 循环 row 中的　cell，给每个 cell添加边框
        row.eachCell({ includeEmpty: true },function (cell, index) {
            cell.border = {
                top: { style: "thin" },
                left: { style: "thin" },
                bottom: { style: "thin" },
                right: { style: "thin" },
            };
        });
    }
}

